package com.bestcem.xm.member.mq.receiver.biz;

import com.bestcem.xm.member.mq.message.*;
import org.springframework.messaging.support.GenericMessage;

import java.util.function.Consumer;

public interface MemberConsumers {

    /**
     * 分组规则修改
     */
    Consumer<GenericMessage<GroupingMessage>> groupConditionMod();

    /**
     * 联系人删除
     */
    Consumer<GenericMessage<GroupDeletedMessage>> groupDeleted();

    /**
     * 创建用户
     */
    Consumer<GenericMessage<UserMessage>> userCreated();

    /**
     * 更新用户同步更新内部联系人
     */
    Consumer<GenericMessage<UserMessage>> userUpdated();

    /**
     * 机构创建
     */
    Consumer<GenericMessage<OrgCreatedMessage>> orgCreated();

    /**
     * 保存联系人足迹
     */
    Consumer<GenericMessage<FootprintMessage>> footprintSave();

    /**
     * 联系人创建、联系人更新-调度至分组
     */
    Consumer<GenericMessage<MemberCreationUpdMessage>> memberCreationUpd();

    /**
     * 联系人本地缓存
     */
    Consumer<GenericMessage<SourceCardMessage>> memberDb();

    /**
     * 删除联系人
     */
    Consumer<GenericMessage<MemberDeletedMessage>> memberDeleted();

    /**
     * 打标签消息
     */
    Consumer<GenericMessage<MemberSliceMessage>> memberSlice();

    /**
     * 同步所有已授权的公众号粉丝数据 延时队列
     */
    Consumer<GenericMessage<WechatMemberSyncMessage>> wechatMemberScheduleSyncDelay();

    /**
     * 同步微信粉丝
     */
    Consumer<GenericMessage<WechatMemberSyncMessage>> memberWechatMemberSchedule();

    /**
     * 微信同步联系人(调度) 延迟队列
     */
    Consumer<GenericMessage<WechatMemberSyncMessage>> wechatMemberSyncDelayDelay();

    /**
     * 处理微信公众号粉丝同步联系人
     */
    Consumer<GenericMessage<WechatMemberSyncMessage>> memberWechatMemberSync();

    /**
     * 答卷提交
     */
    Consumer<GenericMessage<RespondentDataMessage>> surveyRespondentSubmit();

    /**
     * 答卷时授权获取微信账号信息
     */
    Consumer<GenericMessage<SyncWechatAccountInfoMessage>> syncWechatAccountInfo();

    /**
     * 监听用户层级变动
     */
    Consumer<GenericMessage<SyncMemberStoreMessage>> userGroupChanged();

    /**
     * 微信公众号授权
     */
    Consumer<GenericMessage<WechatOfficialAccountGrantedMessage>> wechatOfficialAccountGranted();

    /**
     * 监听联系人延迟队列消息/group member 重新分组
     */
    Consumer<GenericMessage<MemberCreationUpdMessage>> memberRegroupMember();

    /**
     * 监听联系人延迟队列消息/group members 重新分组
     */
    Consumer<GenericMessage<GroupingMessage>> memberRegroupMembers();

    /**
     * 微信公众号同步打开与关闭延迟队列消息
     */
    Consumer<GenericMessage<WechatMemberSyncMessage>> wechatMemberSyncDelay();
}
